/**
	License:		Artistic license 2.0 (see license.txt, also available online at http://www.perlfoundation.org/artistic_license_2_0)
	Authors:		OrbitalLab (http://www.orbitallab.ru/moonglide/), 2007-2009

	File:			IResIOProvider.d
	Description:	abstract typed resource io class
	Date:			3.12.2007 by Digited
*/
module moonglide.resources.io.IResIOProvider;

public import moonglide.resources.Management;

//================================================================
/// abstract typed resource io class (both for managers and typed loaders/savers)
//================================================================
interface IResIOProvider
{
	void	Load( char[] extension, ref IResource res, InputStream stream, uint streamsize );
	bool	Save( char[] format, IResource res, ref Array buf );
	void	CreateErrorResourceData( IResource res, char[] errorResName );

	char[]	GetResourceClass();
}